package com.briup.corejava.day16;

/**
 * 线程创建的第一种方式，继承Thread类
 * 线程创建的第二种方式，实现Runnable接口，将实现类的对象传递给Thread的构造器
 * 线程的相关方法
 */
public class Test1 {
    public static void main(String[] args) {
        // 获取当前线程的名字
        String name = Thread.currentThread().getName();
        System.out.println(name);
        // 创建线程对象
        Thread t1 = new MyThread();
        Runnable r = new MyRunnable();
        Thread t2 = new Thread(r,"runnable子线程");
        // 给t1线程设置名字
        t1.setName("线程t1");
        // 启动线程
        t1.start();
        t2.start();
        // t1.run();
        System.out.println("线程启动完毕...");
    }
}
class MyThread extends Thread{
    @Override
    public void run() {
        // 子线程将要执行的任务
        for(int i = 0;i<10;i++){
            String name = Thread.currentThread().getName();
            System.out.println(name+"子线程执行..."+i);

            // 想让这个输出每隔一秒钟输出一次
            try {
                Thread.sleep(1000); // 单位为毫秒
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
class MyRunnable implements Runnable{
    @Override
    public void run() {
        // 获得名字
        String name = Thread.currentThread().getName();
        for (int i = 20; i < 70; i++) {
            System.out.println(name+"-"+i);
        }
    }
}
